package com.briup.ch08;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Test1_Collection {
    public static void main(String[] args) {
        //1.定义集合对象:使用多态,泛型
        Collection<Object> co1 = new ArrayList<>();//不写默认是Object
        co1.add(10);
        co1.add("abc");
        co1.add(false);
        System.out.println("元素个数：" + co1.size());
        System.out.println("是否为空" + co1.isEmpty());
        System.out.println("是否存在abc:" + co1.contains("abc"));
        System.out.println(co1.toString());
        System.out.println(co1.toArray()[0]);
        //集合的遍历有以下方式：1.for..i  co1.toArray()
        //2.使用foreach for(数据类型 变量名：数组/集合对象)
        for (Object obj : co1) {
            System.out.print(obj + " ");
        }
        //3.迭代器 iterable接口，里面提供了iterater 返回值->Iterator
        Iterator<Object> it = co1.iterator();
        while (it.hasNext())//判断指针
        {
            //co1.add("haha") 在迭代中不能修改，遍历就是只能遍历
            Object obj = it.next();
            System.out.println(obj);
        }
        //it.next();执行完会停在元素的最后一个元素，瑕疵迭代要重新创建一个迭代器
        co1.remove(10);//删除一个

        //4.stream流:lamda表达式
        co1.forEach((obj) -> System.out.println(obj));
        co1.clear();//清空
        co1.forEach(System.out::println);

        //集合和集合之间的功能
        System.out.println("-------------");
        Collection<String> co2=new ArrayList<>();//都改为HashSet<> 无序集合里面不能有重复的元素
        Collection<String> co3=new ArrayList<>();
        Collection<String> co4=new ArrayList<>();
        co2.add("hello");
        co2.add("world");
        co2.add("abc");

        co3.add("briup");
        co3.add("hello");
        co3.add("abc");

        co4.add("briup");
        co4.add("hello");
        co4.add("ab");

        co2.addAll(co3);
        System.out.println("co2:"+co2);
        System.out.println("co3:"+co3);
        System.out.println(co2.containsAll(co3));//值比较,只要是元素都能all找到，就是子集，不看顺序有就行
        System.out.println(co2.containsAll(co4));
        System.out.println("-------------------");

    }
}
